package com.arpa.ntocc.common.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.arpa.ntocc.common.common.cache.RoleCacheDO;
import com.arpa.ntocc.common.domain.dto.ShipmentAuthorizationJsonBean;
import com.arpa.ntocc.common.domain.dto.WarehouseAuthorizationJsonBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 用户DTO
 * </p>
 *
 * @author liuyj
 * @since 2019-11-26
 */
@Data
@ApiModel(value="PartyVO对象", description="用户")
public class PartyVO implements Serializable {


    @ApiModelProperty(value = "code")
    private String code;

    @ApiModelProperty(value = "用户类型")
    private String partyType;

    @ApiModelProperty(value = "用户电话")
    private String phone;

    @ApiModelProperty(value = "用户名")
    private String name;

    @ApiModelProperty(value = "头像图片")
    private String headImg;

    @ApiModelProperty(value = "状态 0正常，1禁用")
    private Integer status;

    @ApiModelProperty(value = "网点编码")
    private String branchCode;
    @ApiModelProperty(value = "部门编码")
    private String departmentCode;

    @ApiModelProperty(value = "网点名称")
    private String branchName;
    @ApiModelProperty(value = "部门名称")
    private String departmentName;

    @ApiModelProperty(value = "总数")
    private Long total;

    @ApiModelProperty(value = "账户余额")
    private BigDecimal balance;

    @ApiModelProperty(value = "银行卡数量")
    private Integer bankCardNum;

    @ApiModelProperty(value = "审核状态:0未审核/1审核中/2审核未通过/3审核通过")
    private Integer authStatus;

    @ApiModelProperty(value = "创建人")
    private String createdBy;

    @ApiModelProperty(value = "创建时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreated;

    @ApiModelProperty(value = "角色列表")
    private List<RoleCacheDO> roleList;

    @ApiModelProperty(value = "角色code列表")
    private List<String> roleCodeList;

    @ApiModelProperty(value = "省编码")
    private String provinceCode;

    @ApiModelProperty(value = "市编码")
    private String cityCode;

    @ApiModelProperty(value = "县/区编码")
    private String countyCode;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "高德地图服务id")
    private String amapSid;

    @ApiModelProperty(value = "高德地图终端id")
    private String amapTid;

    @ApiModelProperty(value = "高德地图轨迹id")
    private String amapTrid;

    @ApiModelProperty(value = "保证金基准额度")
    private BigDecimal ensureFee;

    @ApiModelProperty(value = "保证金账户余额")
    private BigDecimal ensureFeeAmount;

    @ApiModelProperty(value = "是否需要发货保证金，0否/1是")
    private Integer isEnsure;

    @ApiModelProperty(value = "货主是否独立核算:0否/1是")
    private Integer isIndependentCheckout;

    @ApiModelProperty(value = "保证金")
    private BigDecimal bond;

    @ApiModelProperty(value = "父账号")
    private String parentCode;

    @ApiModelProperty(value = "是否是业务员")
    private String isSalesMan;

    @ApiModelProperty(value = "登录账号类型：WAREHOUSE（仓库）/SHIPMENT（入驻商）/WAREHOUSE、SHIPMENT（仓库，入驻商）")
    private String userLoginType;
    @ApiModelProperty(value = "'仓库授权'")
    private List<WarehouseAuthorizationJsonBean> warehouseAuthorization;
    @ApiModelProperty(value = "'货主授权'")
    private List<ShipmentAuthorizationJsonBean> shipmentAuthorization;

    @ApiModelProperty(value = "职位")
    private String position;

    @ApiModelProperty(value = "工号")
    private String employeeNumber;

    @ApiModelProperty(value = "用工类型")
    private String employmentType;

    @ApiModelProperty(value = "劳务外包方")
    private String outsourcer;

    @ApiModelProperty(value = "入职日期")
    private String enrollmentDate;

    @ApiModelProperty(value = "用工类型文本")
    private String employmentTypeText;

    @ApiModelProperty(value = "劳务外包方名称")
    private String outsourcerName;

    @ApiModelProperty(value = "职位名称")
    private String positionName;



}
